home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / ISSUE15 / CPPCLASS / OWLDEL / delcompo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-07-17  |  2.7 KB  |  109 lines

  1. unit delcompo;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, COMSlidr, delowl;
  8.  
  9. type
  10.   TDelOwlHSlider = class(TDelOwlControl)
  11.   private
  12.     { Private declarations }
  13.      FOnChange  : TNotifyEvent;
  14.      FTic       : integer;
  15.      procedure FOnChangeInternal(Sender : TObject); cdecl; export;
  16.  
  17.   protected
  18.     { Protected declarations }
  19.     procedure SetOnChange(func : TNotifyEvent); virtual;
  20.     function  GetPos : integer;       virtual;
  21.     procedure SetPos(pos : integer);  virtual;
  22.     function  GetMinRange : integer;  virtual;
  23.     function  GetMaxRange : integer;  virtual;
  24.     procedure SetMinRange(amin: integer); virtual;
  25.     procedure SetMaxRange(amax: integer); virtual;
  26.     procedure SetTicGap(aticGap: integer);virtual;
  27.   public
  28.     { Public declarations }
  29.      constructor Create(AOwner: TComponent); override;
  30.   published
  31.     { Published declarations }
  32.  
  33.     property OnChange  : TNotifyEvent  read FOnChange write SetOnChange;
  34.     property Position  : integer read GetPos write SetPos;
  35.     property Min       : integer read GetMinRange write SetMinRange;
  36.     property Max       : integer read GetMaxRange write SetMaxRange;
  37.     property TicGap    : integer read FTic write SetTicGap;
  38.  
  39.   end;
  40.  
  41. procedure Register;
  42.  
  43. implementation
  44.  
  45.  
  46. procedure TDelOwlHSlider.FOnChangeInternal(Sender : TObject);
  47. begin
  48.   if (csDesigning in ComponentState) or
  49.      (csLoading in ComponentState)then Exit;
  50.   if Assigned(FOnChange) then FOnChange(Self);
  51. end;
  52.  
  53. procedure TDelOwlHSlider.SetOnChange(func : TNotifyEvent);
  54. begin
  55.   FOnChange := func;
  56.   TCOMSliderInterface(OWLHelpControl).SetOnChange(FOnChangeInternal);
  57. end;
  58.  
  59. procedure TDelOwlHSlider.SetPos(pos : integer);
  60. begin
  61.    TCOMSliderInterface(OWLHelpControl).Position := pos;
  62. end;
  63.  
  64. function TDelOwlHSlider.GetPos : integer;
  65. begin
  66.   Result := TCOMSliderInterface(OWLHelpControl).Position;
  67. end;
  68.  
  69. function TDelOwlHSlider.GetMinRange : integer;
  70. begin
  71.   Result := TCOMSliderInterface(OWLHelpControl).Min;
  72. end;
  73.  
  74. function TDelOwlHSlider.GetMaxRange : integer;
  75. begin
  76.    Result := TCOMSliderInterface(OWLHelpControl).Max;
  77. end;
  78.  
  79. procedure TDelOwlHSlider.SetMinRange(amin: integer);
  80. begin
  81.    TCOMSliderInterface(OWLHelpControl).Min := amin;
  82. end;
  83.  
  84. procedure TDelOwlHSlider.SetMaxRange(amax: integer);
  85. begin
  86.     TCOMSliderInterface(OWLHelpControl).Max := amax;
  87. end;
  88.  
  89. procedure TDelOwlHSlider.SetTicGap(aticGap: integer);
  90. begin
  91.  FTic := aticGap;
  92.  TCOMSliderInterface(OWLHelpControl).TicGap := aticGap;
  93. end;
  94.  
  95.  
  96. constructor TDelOwlHSlider.Create(AOwner: TComponent);
  97. begin
  98.   inherited Create(AOwner);
  99.   TicGap   := 10;
  100. end;
  101.  
  102.  
  103. procedure Register;
  104. begin
  105.   RegisterComponents('Samples', [TDelOwlHSlider]);
  106. end;
  107.  
  108. end.
  109.